--- 汇中管段式 SCL_61D 汇中协议 dtype=160,addr=65 41H(默认)
--- 后期可以自定义addr（通信地址），需要网络设置
module(..., package.seeall)
local dtu, udtu ,addr = {}, {},65
function setDtu(_dtu, _udtu)
    dtu, udtu = _dtu, _udtu
    addr = udtu.addr and tonumber(udtu.addr) or 65 --默认41H
    sys.taskInit(init)
end
function _pro(d)
    if #d>11 then
        local ins = tonumber(d:sub(4, 7):toHex(),10)/1000
        local val = tonumber(d:sub(8, 11):toHex(),10)/10
        lcd.LCD_DATA[3]= "累计:"..val.." 瞬时:"..ins
        usrdata.update({val,ins})
    else
        lcd.LCD_DATA[3]= "读取字节长度不够"
    end
end
function init()
    sys.wait(200)
    local read_dat ="2A"..string.format("%02X",addr).."4A"
	while true do
        sys.publish("UART_SENT_RDY_3", 3, read_dat:fromHex())
        local res, d = sys.waitUntil("UART_READ_DONE_NEXT_3" , 5000)
        if res then
            _pro(d)
            sys.wait(5000)
        else
            lcd.LCD_DATA[3]="HZ_61D TIMEOUT"
        end
	end 
end
